/*
 * Copyright (c) 2007-2021 西安交通信息投资营运有限公司 版权所有
 */

package com.xci.xajtfb.wxc.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.github.lvyanyang.core.BaseEntity;
import com.github.lvyanyang.core.Const;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;

import java.util.Date;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

/**
 * 驾校信息
 * @author 吕艳阳 lvyanyang@xci96716.com
 * @since 2021-02-07 14:10:10
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "驾校信息")
public class School extends BaseEntity {
    /**
     * 主键
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @ExcelIgnore
    @Excel(name = "主键", width = 20d)
    @ApiModelProperty(value = "主键", position = 1)
    private Long id;

    /**
     * 原表主键
     */
    @Length(max = 50, message = "原表主键长度不能超过{max}个字符")
    @Excel(name = "原表主键", width = 20d)
    @ApiModelProperty(value = "原表主键", position = 2)
    private String jpyhbs;

    /**
     * 驾校名称
     */
    @NotBlank(message = "驾校名称不能为空")
    @Length(max = 100, message = "驾校名称长度不能超过{max}个字符")
    @Excel(name = "驾校名称", width = 20d)
    @ApiModelProperty(value = "驾校名称", required = true, position = 3)
    private String name;

    /**
     * 驾校名称拼音
     */
    @Length(max = 300, message = "驾校名称拼音长度不能超过{max}个字符")
    @Excel(name = "驾校名称拼音", width = 20d)
    @ApiModelProperty(value = "驾校名称拼音", position = 4)
    private String nameSpell;

    /**
     * 许可证号
     */
    @Length(max = 50, message = "许可证号长度不能超过{max}个字符")
    @Excel(name = "许可证号", width = 20d)
    @ApiModelProperty(value = "许可证号", position = 5)
    private String licenseNumber;

    /**
     * 统一社会信用代码
     */
    @Length(max = 50, message = "统一社会信用代码长度不能超过{max}个字符")
    @Excel(name = "统一社会信用代码", width = 20d)
    @ApiModelProperty(value = "统一社会信用代码", position = 6)
    private String socialCreditCode;

    /**
     * 法人代表
     */
    @Length(max = 50, message = "法人代表长度不能超过{max}个字符")
    @Excel(name = "法人代表", width = 20d)
    @ApiModelProperty(value = "法人代表", position = 7)
    private String legalPerson;

    /**
     * 法人身份证号
     */
    @Length(max = 50, message = "法人身份证号长度不能超过{max}个字符")
    @Excel(name = "法人身份证号", width = 20d)
    @ApiModelProperty(value = "法人身份证号", position = 8)
    private String legalPersonNumber;

    /**
     * 经济性质
     */
    @Length(max = 50, message = "经济性质长度不能超过{max}个字符")
    @Excel(name = "经济性质", width = 20d)
    @ApiModelProperty(value = "经济性质", position = 9)
    private String economicNature;

    /**
     * 校长
     */
    @Length(max = 50, message = "校长长度不能超过{max}个字符")
    @Excel(name = "校长", width = 20d)
    @ApiModelProperty(value = "校长", position = 10)
    private String principal;

    /**
     * 联系电话
     */
    @Length(max = 50, message = "联系电话长度不能超过{max}个字符")
    @Excel(name = "联系电话", width = 20d)
    @ApiModelProperty(value = "联系电话", position = 11)
    private String tel;

    /**
     * 地址省份
     */
    @Length(max = 50, message = "地址省份长度不能超过{max}个字符")
    @Excel(name = "地址省份", width = 20d)
    @ApiModelProperty(value = "地址省份", position = 12)
    private String province;

    /**
     * 地址市
     */
    @Length(max = 50, message = "地址市长度不能超过{max}个字符")
    @Excel(name = "地址市", width = 20d)
    @ApiModelProperty(value = "地址市", position = 13)
    private String city;

    /**
     * 地址区
     */
    @Length(max = 50, message = "地址区长度不能超过{max}个字符")
    @Excel(name = "地址区", width = 20d)
    @ApiModelProperty(value = "地址区", position = 14)
    private String district;

    /**
     * 地址街道
     */
    @Length(max = 50, message = "地址街道长度不能超过{max}个字符")
    @Excel(name = "地址街道", width = 20d)
    @ApiModelProperty(value = "地址街道", position = 15)
    private String street;

    /**
     * 地址村（号）
     */
    @Length(max = 50, message = "地址村（号）长度不能超过{max}个字符")
    @Excel(name = "地址村（号）", width = 20d)
    @ApiModelProperty(value = "地址村（号）", position = 16)
    private String village;

    /**
     * 开业时间
     */
    @Excel(name = "开业时间", width = 20d, exportFormat = Const.DEFAULT_DATETIME_PATTERN)
    @ApiModelProperty(value = "开业时间", position = 17)
    private Date openingDate;

    /**
     * 驾校等级
     */
    @Length(max = 50, message = "驾校等级长度不能超过{max}个字符")
    @Excel(name = "驾校等级", width = 20d)
    @ApiModelProperty(value = "驾校等级", position = 18)
    private String companyLevel;

    /**
     * 学制（单位：月）
     */
    @Excel(name = "学制（单位：月）", width = 20d)
    @ApiModelProperty(value = "学制（单位：月）", position = 19)
    private Integer xz;

    /**
     * 招生范围
     */
    @Length(max = 100, message = "招生范围长度不能超过{max}个字符")
    @Excel(name = "招生范围", width = 20d)
    @ApiModelProperty(value = "招生范围", position = 20)
    private String enrollmentScope;

    /**
     * 培训方式
     */
    @Length(max = 50, message = "培训方式长度不能超过{max}个字符")
    @Excel(name = "培训方式", width = 20d)
    @ApiModelProperty(value = "培训方式", position = 21)
    private String trainingMethods;

    /**
     * 工商行政管理机构
     */
    @Length(max = 100, message = "工商行政管理机构长度不能超过{max}个字符")
    @Excel(name = "工商行政管理机构", width = 20d)
    @ApiModelProperty(value = "工商行政管理机构", position = 22)
    private String industryCommerceBureau;

    /**
     * 教练场拥有形式
     */
    @Length(max = 50, message = "教练场拥有形式长度不能超过{max}个字符")
    @Excel(name = "教练场拥有形式", width = 20d)
    @ApiModelProperty(value = "教练场拥有形式", position = 23)
    private String trainingGroundNature;

    /**
     * 运营状态[运营_1,停业_2,注销_3,开业业务办理中_4,锁定_10]
     */
    @NotNull(message = "运营状态[运营_1,停业_2,注销_3,开业业务办理中_4,锁定_10]不能为空")
    @Excel(name = "运营状态[运营_1,停业_2,注销_3,开业业务办理中_4,锁定_10]", width = 20d)
    @ApiModelProperty(value = "运营状态[运营_1,停业_2,注销_3,开业业务办理中_4,锁定_10]", required = true, position = 24)
    private Integer operateStatus;

    /**
     * 业务状态[正常_0,开业办理_1,停业办理_2,注销办理_3,复业办理_4,锁定_10,换证办理_20,变更办理_30,补证办理_70,延续经营办理_80,即办件_90]
     */
    @NotNull(message = "业务状态[正常_0,开业办理_1,停业办理_2,注销办理_3,复业办理_4,锁定_10,换证办理_20,变更办理_30,补证办理_70,延续经营办理_80,即办件_90]不能为空")
    @Excel(name = "业务状态[正常_0,开业办理_1,停业办理_2,注销办理_3,复业办理_4,锁定_10,换证办理_20,变更办理_30,补证办理_70,延续经营办理_80,即办件_90]", width = 20d)
    @ApiModelProperty(value = "业务状态[正常_0,开业办理_1,停业办理_2,注销办理_3,复业办理_4,锁定_10,换证办理_20,变更办理_30,补证办理_70,延续经营办理_80,即办件_90]", required = true, position = 25)
    private Integer businessType;

    /**
     * 年审年度
     */
    @Excel(name = "年审年度", width = 20d, exportFormat = Const.DEFAULT_DATETIME_PATTERN)
    @ApiModelProperty(value = "年审年度", position = 26)
    private Date annuaReviewYear;

    /**
     * 经营范围名称
     */
    @Length(max = 500, message = "经营范围名称长度不能超过{max}个字符")
    @Excel(name = "经营范围名称", width = 20d)
    @ApiModelProperty(value = "经营范围名称", position = 27)
    private String businessScopeName;

    /**
     * 经营范围编码
     */
    @Length(max = 50, message = "经营范围编码长度不能超过{max}个字符")
    @Excel(name = "经营范围编码", width = 20d)
    @ApiModelProperty(value = "经营范围编码", position = 28)
    private String businessScopeCode;

    /**
     * 发证机关
     */
    @Length(max = 50, message = "发证机关长度不能超过{max}个字符")
    @Excel(name = "发证机关", width = 20d)
    @ApiModelProperty(value = "发证机关", position = 29)
    private String issuingDept;

    /**
     * 发证日期
     */
    @Excel(name = "发证日期", width = 20d, exportFormat = Const.DEFAULT_DATETIME_PATTERN)
    @ApiModelProperty(value = "发证日期", position = 30)
    private Date issueDate;

    /**
     * 区域编号
     */
    @Length(max = 50, message = "区域编号长度不能超过{max}个字符")
    @Excel(name = "区域编号", width = 20d)
    @ApiModelProperty(value = "区域编号", position = 31)
    private String areaCode;

    /**
     * 区域名称
     */
    @Length(max = 50, message = "区域名称长度不能超过{max}个字符")
    @Excel(name = "区域名称", width = 20d)
    @ApiModelProperty(value = "区域名称", position = 32)
    private String areaName;

    /**
     * 有效期起始日期
     */
    @Excel(name = "有效期起始日期", width = 20d, exportFormat = Const.DEFAULT_DATETIME_PATTERN)
    @ApiModelProperty(value = "有效期起始日期", position = 33)
    private Date expiryStartdate;

    /**
     * 有效期截止日期
     */
    @Excel(name = "有效期截止日期", width = 20d, exportFormat = Const.DEFAULT_DATETIME_PATTERN)
    @ApiModelProperty(value = "有效期截止日期", position = 34)
    private Date expiryEnddate;

    /**
     * 开业审核时间
     */
    @Excel(name = "开业审核时间", width = 20d, exportFormat = Const.DEFAULT_DATETIME_PATTERN)
    @ApiModelProperty(value = "开业审核时间", position = 35)
    private Date auditDate;

    /**
     * 开业审核状态 [待上报_1,已上报_2,中心审核通过_3,中心驳回_4,取消_5,科室审核通过_6,科室驳回_7]
     */
    @NotNull(message = "开业审核状态 [待上报_1,已上报_2,中心审核通过_3,中心驳回_4,取消_5,科室审核通过_6,科室驳回_7]不能为空")
    @Excel(name = "开业审核状态 [待上报_1,已上报_2,中心审核通过_3,中心驳回_4,取消_5,科室审核通过_6,科室驳回_7]", width = 20d)
    @ApiModelProperty(value = "开业审核状态 [待上报_1,已上报_2,中心审核通过_3,中心驳回_4,取消_5,科室审核通过_6,科室驳回_7]", required = true, position = 36)
    private Integer auditStatus;

    /**
     * 开业审核意见
     */
    @Length(max = 500, message = "开业审核意见长度不能超过{max}个字符")
    @Excel(name = "开业审核意见", width = 20d)
    @ApiModelProperty(value = "开业审核意见", position = 37)
    private String auditOpinion;

    /**
     * 开业审核人
     */
    @Length(max = 100, message = "开业审核人长度不能超过{max}个字符")
    @Excel(name = "开业审核人", width = 20d)
    @ApiModelProperty(value = "开业审核人", position = 38)
    private String auditName;

    /**
     * 开业数据来源[行业录入_1,企业录入_2]
     */
    @Excel(name = "开业数据来源[行业录入_1,企业录入_2]", width = 20d)
    @ApiModelProperty(value = "开业数据来源[行业录入_1,企业录入_2]", position = 39)
    private Integer inputSources;

    /**
     * 业务审核状态 [待上报_1,已上报_2,审核通过_3,驳回_4,取消_5]
     */
    @Excel(name = "业务审核状态 [待上报_1,已上报_2,审核通过_3,驳回_4,取消_5]", width = 20d)
    @ApiModelProperty(value = "业务审核状态 [待上报_1,已上报_2,审核通过_3,驳回_4,取消_5]", position = 40)
    private Integer businessAuditStatus;

    /**
     * 业务审核时间
     */
    @Excel(name = "业务审核时间", width = 20d, exportFormat = Const.DEFAULT_DATETIME_PATTERN)
    @ApiModelProperty(value = "业务审核时间", position = 41)
    private Date businessAuditDate;

    /**
     * 业务审核意见
     */
    @Length(max = 500, message = "业务审核意见长度不能超过{max}个字符")
    @Excel(name = "业务审核意见", width = 20d)
    @ApiModelProperty(value = "业务审核意见", position = 42)
    private String businessAuditOpinion;

    /**
     * 业务审核人
     */
    @Length(max = 50, message = "业务审核人长度不能超过{max}个字符")
    @Excel(name = "业务审核人", width = 20d)
    @ApiModelProperty(value = "业务审核人", position = 43)
    private String businessAuditName;

    /**
     * 部门主键
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @Excel(name = "部门主键", width = 20d)
    @ApiModelProperty(value = "部门主键", position = 44)
    private Long deptId;

    /**
     * 经度
     */
    @Excel(name = "经度", width = 20d)
    @ApiModelProperty(value = "经度", position = 45)
    private Double longitude;

    /**
     * 维度
     */
    @Excel(name = "维度", width = 20d)
    @ApiModelProperty(value = "维度", position = 46)
    private Double dimension;

    /**
     * 固定资产原值
     */
    @Excel(name = "固定资产原值", width = 20d)
    @ApiModelProperty(value = "固定资产原值", position = 47)
    private Double gdzcyz;

    /**
     * 流动资金
     */
    @Excel(name = "流动资金", width = 20d)
    @ApiModelProperty(value = "流动资金", position = 48)
    private Double workingCapital;

    /**
     * 固定资产净值
     */
    @Excel(name = "固定资产净值", width = 20d)
    @ApiModelProperty(value = "固定资产净值", position = 49)
    private Double gdzcjy;

    /**
     * 理论教室面积
     */
    @Excel(name = "理论教室面积", width = 20d)
    @ApiModelProperty(value = "理论教室面积", position = 50)
    private Double lljsArea;

    /**
     * 计算机教室面积
     */
    @Excel(name = "计算机教室面积", width = 20d)
    @ApiModelProperty(value = "计算机教室面积", position = 51)
    private Double jsjjsArea;

    /**
     * 档案室面积
     */
    @Excel(name = "档案室面积", width = 20d)
    @ApiModelProperty(value = "档案室面积", position = 52)
    private Double dasjsArea;

    /**
     * 模拟器教室面积
     */
    @Excel(name = "模拟器教室面积", width = 20d)
    @ApiModelProperty(value = "模拟器教室面积", position = 53)
    private Double mmqjsArea;

    /**
     * 教具教室面积
     */
    @Excel(name = "教具教室面积", width = 20d)
    @ApiModelProperty(value = "教具教室面积", position = 54)
    private Double jjjsArea;

    /**
     * 电脑数
     */
    @Excel(name = "电脑数", width = 20d)
    @ApiModelProperty(value = "电脑数", position = 55)
    private Double computerCount;

    /**
     * 模拟器数
     */
    @Excel(name = "模拟器数", width = 20d)
    @ApiModelProperty(value = "模拟器数", position = 56)
    private Double mnqCount;

    /**
     * 教具数量
     */
    @Excel(name = "教具数量", width = 20d)
    @ApiModelProperty(value = "教具数量", position = 57)
    private Double teachAidsCount;

    /**
     * 法人代表证件类型
     */
    @Length(max = 200, message = "法人代表证件类型长度不能超过{max}个字符")
    @Excel(name = "法人代表证件类型", width = 20d)
    @ApiModelProperty(value = "法人代表证件类型", position = 58)
    private String idTypeLegalPerson;

    /**
     * 创建人主键
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @Excel(name = "创建人主键", width = 20d)
    @ApiModelProperty(value = "创建人主键", position = 59)
    private Long createUserId;

    /**
     * 创建人姓名
     */
    @Length(max = 100, message = "创建人姓名长度不能超过{max}个字符")
    @Excel(name = "创建人姓名", width = 20d)
    @ApiModelProperty(value = "创建人姓名", position = 60)
    private String createUserName;

    /**
     * 创建时间
     */
    @Excel(name = "创建时间", width = 20d, exportFormat = Const.DEFAULT_DATETIME_PATTERN)
    @ApiModelProperty(value = "创建时间", position = 61)
    private Date createDateTime;

    /**
     * 修改人主键
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @Excel(name = "修改人主键", width = 20d)
    @ApiModelProperty(value = "修改人主键", position = 62)
    private Long updateUserId;

    /**
     * 修改人姓名
     */
    @Length(max = 100, message = "修改人姓名长度不能超过{max}个字符")
    @Excel(name = "修改人姓名", width = 20d)
    @ApiModelProperty(value = "修改人姓名", position = 63)
    private String updateUserName;

    /**
     * 修改时间
     */
    @Excel(name = "修改时间", width = 20d, exportFormat = Const.DEFAULT_DATETIME_PATTERN)
    @ApiModelProperty(value = "修改时间", position = 64)
    private Date updateDateTime;

    /**
     * 备注
     */
    @Length(max = 500, message = "备注长度不能超过{max}个字符")
    @Excel(name = "备注", width = 20d)
    @ApiModelProperty(value = "备注", position = 65)
    private String remark;

}